package cn.jingyuan.bee.enums;

public interface EnumInteger extends BaseEnum<Integer> {

    /**
     * 查找 enumClass 对应 value 的 Enum。
     *
     * @param enumClass 枚举类
     * @param value 枚举值
     * @param <E> value 的类型
     *
     * @return 枚举
     */
    static <E extends Enum & EnumInteger> E from(Class<E> enumClass, Integer value) {
        if (null == value) {
            return null;
        }

        E[] values = enumClass.getEnumConstants();
        for (E e : values) {
            if (e.getValue().equals(value)) {
                return e;
            }
        }

        return null;
    }

    /**
     * 获取枚举值
     *
     * @return 枚举值
     */
    Integer getValue();

}
